/*
*编写程序计算数组元素之和。要求编写函数三次，每次使用不同的方法来处理数据边界
*/
#include <iostream>
#include <vector>
using namespace std;

//函数1：使用两个指针进行处理
int add(const int *pbegin,const int *pend)
{
	int result = 0;
	for(;pbegin != pend;++pbegin)
	{
		result += *pbegin;
	}
	return result;
}


//函数2：通过传递指针和数组长度完成
int add(const int iAry[],size_t size)
{
	int result = 0;
	for(size_t i = 0;i != size;++i)
	{
		result += iAry[i];
	}
	return result;
}

//函数3通过引用传递数组
int add(int (&iAry)[5])
{
	int result = 0;
	for(size_t i = 0;i != 5;i++)
	{
		result += iAry[i];
	}
	return result;
}

int main()
{
	const size_t size = 5;
	int iary[size] = {1,2,3,4,5};

	//函数1
	int *pbegin = iary;
	int *pend = pbegin + size;
	cout << add(pbegin,pend);
	cout << endl;
	
	//函数2
	cout << add(iary,size);
	cout << endl;

	//函数3
	cout << add(iary);
	cout << endl;
	system("pause");
	return 0;
}
